From 1b3542419c0878277169e764a7d9ebb57ad55634 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 24 Jun 2014 13:03:47 -0400 Subject: [PATCH] GtkToggleButton: Queue a redraw on enter/leave Without this, we don't redraw consistently for prelight state changes. --- gtk/gtktogglebutton.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gtk/gtktogglebutton.c b/gtk/gtktogglebutton.c index 96856c26ff..ef5ece56df 100644 --- a/gtk/gtktogglebutton.c +++ b/gtk/gtktogglebutton.c @@ -136,6 +136,7 @@ static void gtk_toggle_button_get_property (GObject *object, GValue *value, GParamSpec *pspec); static void gtk_toggle_button_update_state (GtkButton *button); +static void gtk_toggle_button_enter_leave (GtkButton *button); static void gtk_toggle_button_activatable_interface_init (GtkActivatableIface *iface); @@ -174,8 +175,8 @@ gtk_toggle_button_class_init (GtkToggleButtonClass *class) button_class->pressed = gtk_toggle_button_pressed; button_class->released = gtk_toggle_button_released; button_class->clicked = gtk_toggle_button_clicked; - button_class->enter = gtk_toggle_button_update_state; - button_class->leave = gtk_toggle_button_update_state; + button_class->enter = gtk_toggle_button_enter_leave; + button_class->leave = gtk_toggle_button_enter_leave; class->toggled = NULL; @@ -638,6 +639,13 @@ gtk_toggle_button_clicked (GtkButton *button) GTK_BUTTON_CLASS (gtk_toggle_button_parent_class)->clicked (button); } +static void +gtk_toggle_button_enter_leave (GtkButton *button) +{ + gtk_toggle_button_update_state (button); + gtk_widget_queue_draw (GTK_WIDGET (button)); +} + static void gtk_toggle_button_update_state (GtkButton *button) { -- 2.30.2